package day01.text01;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class Test {
    /*使用三种不同方式定义线程，并启动三个线程；
      每个线程内部循环20次，每次循环打印(xxxx线程，执行第x次)，其中x是变量
      并且为三个线程分别命名为：小黑，小白，小胖*/
    public static void main(String[] args) throws ExecutionException, InterruptedException {

        //实例化MyThread对象
        MyThread thread1 = new MyThread();
        //设置线程名称
        thread1.setName("小黑");
        //开启线程
        thread1.start();

        //实例化MyRunnable对象
        MyRunnable mr = new MyRunnable();
        //创建线程，设置线程名称小白
        Thread thread2 = new Thread(mr, "小白");
        //开启线程
        thread2.start();
        //实例化//MyCallable对象
        MyCallable mc = new MyCallable();
        //建立一个任务管理系
        FutureTask<String> ft = new FutureTask<>(mc);


        //创建线程，设置线程名称小胖
        Thread thread3 = new Thread(ft,"小胖");
        //开启线程
        thread3.start();
        //获取返回值
        String s = ft.get();
        System.out.println(s);
    }
}
